﻿#ifndef __PROTECTIONCOVER_H_
#define __PROTECTIONCOVER_H_
#include"DrawMulticoloredCircle.h"
#include<mutex>
class Articles;
//保护罩
class ProtectionCover :public DrawMulticoloredCircle
{
public:
	//被保护的对象,保护时间
	ProtectionCover(Articles& parent, int time=0,int Hz=10);
	~ProtectionCover();
	//将自动跟踪父亲的中心点
	void update()override;
	void draw(QPainter* painter)override;
	//设置圆心坐标
	void setPointO(Articles& parent);
	
	//获取保护状态
	bool getProtectState();
	//设置保护罩时间
	void setProtectTime(int time);
	//获取保护状态剩余时间
	const int getProtectRemainingTime();
	//开启保护罩
	void startProtect();
	void startProtect(int Hz);
	//关闭保护罩
	void closeProtect();
	//保护罩结束
	bool ProtectOver();
	//暂停
	void setPause(bool flag);
private:

private:
	QTimer m_ProtectionTime;//保护罩定时
	Articles& m_parent;
	bool m_pause = false;
	bool m_over = false;//结束
	std::mutex mtx;//互斥量
};
#endif